#ifndef __SDATA_H
#define __SDATA_H




/************************************
 * 函数名称：Send_Qipan
 * 
 * 函数功能：将整个棋盘棋子（白棋 2,黑棋 1）所在的坐标发送给客户端
 *          格式：{int[15][15]:%d,flag=0,1,2} 
 *          flag=0:正在进行 flag=1 黑棋赢 flag=2 白棋赢
 * 
 * 函数参数：@clientsockfd:与客户端收发数据的套接字文件描述符
 *          @pbuf:一个棋盘二维数组pbuf[15][15]
 *          @flag:获取判断输赢 0表示胜负未定、1表示黑棋赢、2表示白棋赢
 * 
 * 返回值：None
 * 
 * 注意事项：None
 * 
 ************************************/
void Send_Qipan(int clientsockfd,int *pbuf,int flag);

/************************************
 * 函数名称：Game_DataSolve
 * 
 * 函数功能：玩家开始对战游戏数据处理，搜索已有正在匹配房间号，
 *          有则返回给客户端匹配成功，无则返回给客户端正在匹配，
 *          并创建一个新房间
 * 
 * 函数参数：@clientsockfd:客户端套接字
 *          @host:创建一个房间的地址
 *          
 * 返回值：None
 * 
 * 注意事项：None
 * 
 ************************************/
void Game_DataSolve(int clientsockfd,playdata *host);

/************************************
 * 函数名称：Guan_Zhan
 * 
 * 函数功能：发送所有正在对战的房间总数给客户端
 * 
 * 函数参数：@clientsockfd:与客户端收发数据的套接字文件描述符
 *          @sumid:所有正在对战的房间总数
 *          @buf:返回提示：如无房间、退回大厅、观战房间号
 * 返回值：None
 * 
 * 注意事项：None
 * 
 ************************************/
void Guan_Zhan(int *sumid,int clientsockfd,char *buf);

/************************************
 * 函数名称：DataSolve
 * 
 * 函数功能：数据处理，解析协议头并采取对应的处理方案 坐标 返回"[x,y,flag=]" 
 *          
 * 函数参数：@clientsockfd:与客户端收发数据的套接字文件描述符
 *          @sumid:所有正在对战的房间总数
 *          @host:创建的房间号地址
 *          @buf:返回客户端请求
 * 
 * 返回值：None
 *        
 * 注意事项：None
 * 
 ************************************/
void DataSolve(int clientsockfd,int *sumid,playdata *host,char *buf);


/************************************
 * 函数名称：Client_Net
 * 
 * 函数功能：处理好的数据重新发给客户端，包括发送棋盘、输赢、悔棋
 * 
 * 函数参数：@clientsockfd:与客户端收发数据的套接字文件描述符
 *          @pbuf:棋盘数据
 *          @flag:输赢标志
 *          @tk:发送模式 如棋盘数据、输赢、悔棋
 * 
 * 返回值：None
 * 
 * 注意事项：None
 * 
 ************************************/
void Client_Net(int clientsockfd,int *pbuf,int flag,int tk);

/************************************
 * 函数名称：DataPack
 * 
 * 函数功能：给一个坐标打包成"[x,y]"格式
 * 
 * 函数参数：@buf_x:原始数据包
 *          @buf:返回客户端传给服务端的坐标
 * 
 * 返回值：None
 * 
 * 注意事项：None
 * 
 ************************************/
void DataPack(char *buf_x,char *buf);

/************************************
 * 函数名称：TouXiang
 * 
 * 函数功能：直接发送失败标志回去给失败
 * 
 * 函数参数：@clientsockfd:与客户端收发数据的套接字文件描述符
 * 
 * 返回值：None
 * 
 * 注意事项：None
 * 
 ************************************/
void TouXiang(int clientsockfd);
#endif